Skill

TestNG এর মধ্যে টেস্ট স্যুট এবং টেস্ট গ্রুপিং

টেস্টএনজি (TestNG) - Java Technologies

419

টেস্টএনজি (TestNG) এর গুরুত্বপূর্ণ বৈশিষ্ট্যগুলোর মধ্যে একটি হলো টেস্ট স্যুট (Test Suite) এবং টেস্ট গ্রুপিং (Test Grouping)। এগুলোর মাধ্যমে আপনি আপনার টেস্ট কেসগুলো আরও সংগঠিত এবং কার্যকরভাবে পরিচালনা করতে পারবেন।


টেস্ট স্যুট (Test Suite)

টেস্ট স্যুট হলো টেস্টগুলোর একটি সমন্বিত সেট, যা একত্রে চালানো হয়। টেস্ট স্যুট তৈরি এবং পরিচালনার জন্য TestNG XML ফাইল ব্যবহার করা হয়।

টেস্ট স্যুট কনফিগারেশন: উদাহরণ

১. একটি TestNG XML ফাইল তৈরি করুন (যেমন testng.xml)।
২. নিচের মতো কনফিগারেশন লিখুন:

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="MyTestSuite">
    <test name="SampleTest">
        <classes>
            <class name="com.example.TestClass1"/>
            <class name="com.example.TestClass2"/>
        </classes>
    </test>
</suite>

কোড ব্যাখ্যা:

  • : এটি স্যুটের মূল ট্যাগ।
  • : একটি টেস্ট সেট, যা একাধিক ক্লাসের টেস্ট কেস চালায়।
  • : টেস্ট চালানোর জন্য একাধিক ক্লাস লিস্ট করে।

টেস্ট স্যুট রান:

  • testng.xml ফাইলের উপর রাইট-ক্লিক করুন এবং Run As > TestNG Suite নির্বাচন করুন।

টেস্ট গ্রুপিং (Test Grouping)

টেস্ট গ্রুপিং আপনাকে টেস্ট কেসগুলোকে নির্দিষ্ট গ্রুপে ভাগ করে চালানোর সুযোগ দেয়। এটি বড় প্রজেক্টে বিশেষভাবে কার্যকর, যেখানে বিভিন্ন ধরণের টেস্ট (যেমন, ফাংশনাল, রেগ্রেশন) পৃথকভাবে চালানোর প্রয়োজন হয়।

গ্রুপিং উদাহরণ

১. একটি টেস্ট ক্লাস লিখুন:

import org.testng.annotations.Test;

public class GroupingExample {

    @Test(groups = {"smoke"})
    public void test1() {
        System.out.println("This is a smoke test.");
    }

    @Test(groups = {"regression"})
    public void test2() {
        System.out.println("This is a regression test.");
    }

    @Test(groups = {"smoke", "regression"})
    public void test3() {
        System.out.println("This is both a smoke and regression test.");
    }
}

কোড বিশ্লেষণ:

  • @Test(groups = {"group_name"}):
    এই অ্যানোটেশন দিয়ে আপনি নির্দিষ্ট গ্রুপে টেস্ট কেস সংযুক্ত করতে পারবেন।

নির্দিষ্ট গ্রুপ চালানোর জন্য testng.xml ফাইল:

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="GroupedTestSuite">
    <test name="SmokeTests">
        <groups>
            <run>
                <include name="smoke"/>
            </run>
        </groups>
        <classes>
            <class name="com.example.GroupingExample"/>
        </classes>
    </test>
</suite>

কোড বিশ্লেষণ:

  • : আপনি এখানে কোন গ্রুপের টেস্ট রান করতে চান তা নির্ধারণ করেন।
  • : গ্রুপ নির্ধারণ করে।

আউটপুট:

  • শুধুমাত্র smoke গ্রুপের টেস্টগুলো রান করবে এবং কনসোলে নিচের আউটপুট দেখাবে:

    This is a smoke test.
    This is both a smoke and regression test.
    

গ্রুপিং ও স্যুটের সুবিধা

  • ফ্লেক্সিবল টেস্টিং: বড় প্রজেক্টে টেস্টগুলো ভাগ করা এবং পরিচালনা করা সহজ হয়।
  • পরিচালন দক্ষতা: নির্দিষ্ট টেস্ট গ্রুপ বা স্যুট চালানোর মাধ্যমে সময় বাঁচানো যায়।
  • রিপোর্টিং: স্যুট ও গ্রুপভিত্তিক টেস্ট রিপোর্ট বিশ্লেষণ সহজ।

সারাংশ

টেস্ট স্যুট এবং গ্রুপিং টেস্টএনজিকে আরও কার্যকর এবং ব্যবহারবান্ধব করে তোলে। আপনি XML ফাইলের মাধ্যমে টেস্ট স্যুট এবং গ্রুপিং পরিচালনা করতে পারেন, যা বড় আকারের প্রজেক্টে টেস্টিং সহজ এবং সংগঠিত করে।

Content added By

Test Suite হলো একটি সংগঠিত কাঠামো যা TestNG-তে একাধিক টেস্ট কেস, ক্লাস এবং প্যাকেজকে একত্রে পরিচালনা করার জন্য ব্যবহৃত হয়। Test Suite সাধারণত একটি XML ফাইলের মাধ্যমে কনফিগার করা হয়, যা পুরো টেস্ট স্যুটের কাঠামো নির্ধারণ করে।


Test Suite কি?

Test Suite হলো একাধিক টেস্টের সমন্বিত সংগ্রহ যা একই ফ্রেমওয়ার্কে একত্রে রান করা হয়। এটি একটি নির্দিষ্ট XML ফাইল এর মাধ্যমে সংজ্ঞায়িত হয় এবং এতে নির্দিষ্ট টেস্ট ক্লাস, মেথড, বা গ্রুপগুলোর উল্লেখ থাকে।

Test Suite এর মূল বৈশিষ্ট্য

  • একাধিক টেস্ট ক্লাস ও মেথড একত্রে সংগঠিত করা যায়।
  • টেস্ট অর্ডার ও পদ্ধতি নির্ধারণ করা যায়।
  • টেস্ট প্যাকেজের নির্দিষ্ট অংশগুলো একত্রে রান করা সম্ভব।
  • প্যারামিটার এবং গ্রুপের মাধ্যমে টেস্ট পরিচালনা করা যায়।

Test Suite কেন ব্যবহার করা হয়?

Test Suite ব্যবহারের প্রধান কারণগুলো হলো:

  • টেস্ট ম্যানেজমেন্ট সহজতর করা: বড় প্রকল্পে একাধিক টেস্ট কেস এবং ক্লাস থাকলে সেগুলোকে একত্রে সংগঠিত ও পরিচালনা করা সহজ হয়।
  • গ্রুপিং সুবিধা: টেস্ট কেসগুলোকে নির্দিষ্ট গ্রুপে ভাগ করে আলাদা রান করা যায়, যেমন sanity, regression ইত্যাদি।
  • অপ্টিমাইজড টেস্ট রানের জন্য: নির্দিষ্ট টেস্ট ক্লাস বা গ্রুপ চালানোর মাধ্যমে সময় বাঁচানো যায়।
  • রিপোর্টিং: স্যুট লেভেলে রিপোর্ট জেনারেট করে টেস্ট প্রক্রিয়ার সামগ্রিক ফলাফল বিশ্লেষণ করা যায়।
  • সিস্টেম ইন্টিগ্রেশন: CI/CD টুল যেমন Jenkins, GitLab CI/CD ইত্যাদির মাধ্যমে সহজ ইন্টিগ্রেশন সম্ভব।

Test Suite এর একটি সাধারণ উদাহরণ

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="MyTestSuite">
    <test name="SanityTests">
        <classes>
            <class name="com.example.LoginTests" />
            <class name="com.example.RegistrationTests" />
        </classes>
    </test>
    <test name="RegressionTests">
        <classes>
            <class name="com.example.DashboardTests" />
            <class name="com.example.ProfileTests" />
        </classes>
    </test>
</suite>

ব্যাখ্যা:
উপরের উদাহরণে,

  • SanityTests এবং RegressionTests নামে দুটি আলাদা টেস্ট গ্রুপ আছে।
  • প্রতিটি টেস্ট গ্রুপের মধ্যে নির্দিষ্ট ক্লাস সংজ্ঞায়িত করা হয়েছে।
  • পুরো স্যুটটি একবার রান করলে, উল্লিখিত সব টেস্ট চালানো হবে।

গ্রুপিং সহ Test Suite এর উদাহরণ

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="GroupedTestSuite">
    <test name="SanityGroupTest">
        <groups>
            <run>
                <include name="sanity" />
            </run>
        </groups>
        <classes>
            <class name="com.example.AllTests" />
        </classes>
    </test>
</suite>

এখানে:

  • শুধুমাত্র sanity গ্রুপের টেস্ট চালানো হবে।
  • AllTests ক্লাসের মেথডগুলো থেকে sanity গ্রুপ অন্তর্ভুক্ত করা হয়েছে।

Test Suite এর উপকারিতা

  1. পুনরাবৃত্তি এড়ানো: প্রতিটি টেস্ট আলাদাভাবে রান করার পরিবর্তে একবারে সব টেস্ট চালানো যায়।
  2. সহজ টেস্ট পরিচালনা: বড় প্রকল্পে টেস্ট কেস পরিচালনা সহজ হয়ে যায়।
  3. গ্রুপিং এবং ফিল্টারিং: প্রয়োজন অনুসারে টেস্ট কেসগুলোকে ফিল্টার করে চালানো যায়।
  4. রিপোর্ট বিশ্লেষণ: স্যুট লেভেলে একটি রিপোর্ট পাওয়া যায়, যা সহজেই টেস্ট ফলাফল বিশ্লেষণ করতে সাহায্য করে।

সারাংশ

Test Suite হলো TestNG ফ্রেমওয়ার্কের একটি শক্তিশালী উপাদান, যা টেস্টিং প্রক্রিয়াকে সংগঠিত এবং দক্ষ করে তোলে। এটি টেস্ট কেস সংগঠনের পাশাপাশি গ্রুপিং, প্যারামিটার সেটআপ এবং অর্ডার কনফিগারেশনের মাধ্যমে টেস্ট ম্যানেজমেন্ট সহজ করে। বড় প্রকল্পে Test Suite ব্যবহার টেস্ট রানের সময় এবং প্রচেষ্টা কমাতে বিশেষ ভূমিকা পালন করে।

Content added By

Test Grouping হলো TestNG ফ্রেমওয়ার্কের একটি বৈশিষ্ট্য, যা টেস্ট কেসগুলোকে লজিক্যাল গ্রুপে ভাগ করার সুযোগ দেয়। টেস্ট কেসগুলো বিভিন্ন group এ সংজ্ঞায়িত করা যায়, যা নির্দিষ্ট টেস্ট চালানো বা বাদ দেওয়ার ক্ষেত্রে সহায়তা করে।

উদাহরণস্বরূপ:
আপনার টেস্ট স্যুটে কিছু টেস্ট শুধুমাত্র ফাংশনাল টেস্টিং (Functional Testing) এর জন্য, আবার কিছু ইন্টিগ্রেশন টেস্টিং (Integration Testing) এর জন্য নির্ধারিত হতে পারে। Test Grouping ব্যবহার করে এই টেস্টগুলোকে আলাদা গ্রুপে ভাগ করা সম্ভব।


টেস্ট গ্রুপিং এর প্রয়োজনীয়তা

১. লজিক্যাল বিভাজন: টেস্ট কেসগুলোকে সহজে পরিচালনার জন্য লজিক্যাল গ্রুপে ভাগ করা যায়।
২. নির্দিষ্ট টেস্ট চালানো: আপনি নির্দিষ্ট গ্রুপের টেস্ট চালাতে পারেন, যা সময় সাশ্রয় করে।
৩. পর্যাপ্ত নিয়ন্ত্রণ: বিভিন্ন ধরণের টেস্ট কেস একসাথে চালানোর প্রয়োজনীয়তা ছাড়াই নির্দিষ্ট গ্রুপের টেস্ট চালানোর সুযোগ।
৪. রিগ্রেশন টেস্টিং: শুধুমাত্র সংশোধিত ফিচার সম্পর্কিত টেস্ট চালানোর জন্য গ্রুপ তৈরি করা যায়।
৫. মডিউলারিটি: একই কোডবেসে বিভিন্ন টেস্ট পরিচালনার জন্য মডিউল তৈরি করা সহজ।
৬. ব্যবস্থাপনা সহজীকরণ: বড় টেস্ট স্যুটের ক্ষেত্রে বিভিন্ন টেস্ট কেসের মধ্যে সম্পর্ক তৈরি করা সহজ হয়।


টেস্ট গ্রুপিং কিভাবে কাজ করে?

TestNG এর @Test অ্যানোটেশনে groups প্যারামিটার ব্যবহার করে গ্রুপ সংজ্ঞায়িত করা হয়।


একটি উদাহরণ

import org.testng.annotations.Test;

public class GroupingExample {

    @Test(groups = { "functional" })
    public void testLogin() {
        System.out.println("Functional Test: Login");
    }

    @Test(groups = { "functional", "regression" })
    public void testDashboard() {
        System.out.println("Functional and Regression Test: Dashboard");
    }

    @Test(groups = { "integration" })
    public void testAPICall() {
        System.out.println("Integration Test: API Call");
    }
}

উপরের উদাহরণে টেস্ট কেসগুলো ভিন্ন ভিন্ন গ্রুপে ভাগ করা হয়েছে:

  • testLogin: শুধুমাত্র functional গ্রুপের অন্তর্ভুক্ত।
  • testDashboard: functional এবং regression উভয় গ্রুপের অন্তর্ভুক্ত।
  • testAPICall: শুধুমাত্র integration গ্রুপের অন্তর্ভুক্ত।

XML কনফিগারেশন ব্যবহার করে গ্রুপিং

TestNG XML ফাইলের মাধ্যমে নির্দিষ্ট গ্রুপ চালানো যায়।

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Test Suite">
    <test name="Grouped Tests">
        <groups>
            <run>
                <include name="functional" />
            </run>
        </groups>
        <classes>
            <class name="com.example.GroupingExample" />
        </classes>
    </test>
</suite>

উপরের কনফিগারেশনে শুধুমাত্র functional গ্রুপ চালানো হবে।


নির্দিষ্ট গ্রুপ বাদ দেওয়া

XML ফাইলের মাধ্যমে টেস্ট গ্রুপ বাদ দেওয়ার জন্য exclude ট্যাগ ব্যবহার করা হয়।

<groups>
    <run>
        <exclude name="regression" />
    </run>
</groups>

এতে regression গ্রুপের টেস্টগুলো বাদ দেওয়া হবে।


ডিপেন্ডেন্ট গ্রুপ টেস্টিং

TestNG এ গ্রুপিংয়ের মাধ্যমে টেস্ট কেসকে নির্ভরশীল করা যায়।

@Test(groups = { "login" })
public void testLogin() {
    System.out.println("Login Test");
}

@Test(groups = { "dashboard" }, dependsOnGroups = { "login" })
public void testDashboard() {
    System.out.println("Dashboard Test");
}

এখানে testDashboard টেস্টটি login গ্রুপের উপর নির্ভরশীল।


টেস্ট গ্রুপিংয়ের সুবিধা

১. টেস্ট কেস নির্বাচন সহজ: একাধিক গ্রুপ তৈরি করে নির্দিষ্ট টেস্ট কেস চালানো যায়।
২. রানটাইমে কনফিগারেশন: XML ফাইল ব্যবহার করে গ্রুপগুলো নিয়ন্ত্রণ করা যায়।
৩. প্যারালাল টেস্টিং: গ্রুপ অনুযায়ী টেস্ট প্যারালালভাবে চালানো যায়।
৪. ডিবাগিং সহজতর: কোনো একটি নির্দিষ্ট সমস্যা সমাধানের জন্য সংশ্লিষ্ট গ্রুপের টেস্ট চালানো যায়।


Test Grouping টেস্টিং প্রক্রিয়াকে আরও সংগঠিত এবং কার্যকরী করে তোলে, বিশেষত যখন বড় সিস্টেম বা জটিল কোডবেসে কাজ করতে হয়।

Content added By

@Test(groups="") অ্যানোটেশনটি ব্যবহার করে টেস্টগুলোকে এক বা একাধিক গ্রুপে ভাগ করা যায়। এটি বিশেষত বড় প্রোজেক্টে টেস্ট কেস ম্যানেজমেন্টকে সহজ করে তোলে। গ্রুপিংয়ের মাধ্যমে আপনি নির্দিষ্ট গ্রুপের টেস্ট চালাতে বা নির্দিষ্ট গ্রুপ বাদ দিয়ে অন্য টেস্ট চালাতে পারবেন।


@Test(groups="") এর সুবিধা

  • টেস্টগুলোকে ক্যাটাগরি বা টাইপ অনুযায়ী গ্রুপে ভাগ করা যায়, যেমন smoke, regression, functional
  • নির্দিষ্ট গ্রুপের টেস্ট চালানো যায়।
  • বড় স্কেলের টেস্টিংয়ে সময় এবং ম্যানেজমেন্ট সহজ হয়।

@Test(groups="") এর উদাহরণ

import org.testng.annotations.Test;

public class GroupingTest {

    @Test(groups = {"smoke"})
    public void smokeTest1() {
        System.out.println("This is Smoke Test 1.");
    }

    @Test(groups = {"smoke"})
    public void smokeTest2() {
        System.out.println("This is Smoke Test 2.");
    }

    @Test(groups = {"regression"})
    public void regressionTest() {
        System.out.println("This is Regression Test.");
    }

    @Test(groups = {"smoke", "regression"})
    public void smokeAndRegressionTest() {
        System.out.println("This is both Smoke and Regression Test.");
    }
}

TestNG.xml এর মাধ্যমে নির্দিষ্ট গ্রুপ চালানো

TestNG.xml ব্যবহার করে নির্দিষ্ট গ্রুপ চালানোর কনফিগারেশন দেওয়া যায়।

TestNG.xml ফাইল

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Group Test Suite">
    <test name="Smoke Tests">
        <groups>
            <run>
                <include name="smoke"/>
            </run>
        </groups>
        <classes>
            <class name="GroupingTest"/>
        </classes>
    </test>
</suite>

এই কনফিগারেশনে শুধুমাত্র smoke গ্রুপের টেস্টগুলো চালানো হবে।

আউটপুট:

This is Smoke Test 1.
This is Smoke Test 2.
This is both Smoke and Regression Test.

গ্রুপ বাদ দেওয়া (Exclude Groups)

আপনি যদি নির্দিষ্ট একটি গ্রুপ চালাতে না চান তবে তা exclude করে দিতে পারেন।

TestNG.xml ফাইল

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Group Test Suite">
    <test name="Exclude Regression Tests">
        <groups>
            <run>
                <exclude name="regression"/>
            </run>
        </groups>
        <classes>
            <class name="GroupingTest"/>
        </classes>
    </test>
</suite>

এই কনফিগারেশনে regression গ্রুপ বাদ দিয়ে অন্যান্য টেস্ট চালানো হবে।

আউটপুট:

This is Smoke Test 1.
This is Smoke Test 2.

একাধিক গ্রুপ চালানো

আপনি একাধিক গ্রুপ চালানোর জন্য include অপশন ব্যবহার করতে পারেন।

TestNG.xml ফাইল

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Group Test Suite">
    <test name="Smoke and Regression Tests">
        <groups>
            <run>
                <include name="smoke"/>
                <include name="regression"/>
            </run>
        </groups>
        <classes>
            <class name="GroupingTest"/>
        </classes>
    </test>
</suite>

আউটপুট:

This is Smoke Test 1.
This is Smoke Test 2.
This is Regression Test.
This is both Smoke and Regression Test.

কোডের মধ্যে গ্রুপ চালানোর উদাহরণ

আপনি TestNG Runner ব্যবহার করেও নির্দিষ্ট গ্রুপ চালাতে পারেন।

import org.testng.TestNG;

import java.util.ArrayList;
import java.util.List;

public class TestRunner {
    public static void main(String[] args) {
        TestNG testng = new TestNG();

        // টেস্ট গ্রুপ চালানোর জন্য TestNG কনফিগারেশন
        testng.setGroups("smoke");

        List<String> suites = new ArrayList<>();
        suites.add("testng.xml"); // TestNG.xml ফাইলের পাথ
        testng.setTestSuites(suites);

        testng.run();
    }
}

উপসংহার

@Test(groups="") টেস্টিং-এ টেস্ট কেসগুলোকে আলাদা গ্রুপে ভাগ করে কার্যকর ম্যানেজমেন্টের সুবিধা দেয়। এটি বড় প্রোজেক্টে টেস্ট সেগ্রিগেশন সহজ করে এবং নির্দিষ্ট গ্রুপ চালানো বা এড়িয়ে যাওয়ার জন্য একটি কার্যকর পদ্ধতি প্রদান করে।

Content added By

Test Suite এবং Grouping হল TestNG-এর দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য। এগুলো বড় টেস্টিং প্রজেক্ট পরিচালনা এবং টেস্ট কেস পরিচালনাকে আরও সহজ করে তোলে।


Test Suite

Test Suite মূলত এক বা একাধিক টেস্ট ক্লাসের একটি সংগ্রহ। TestNG-তে এটি একটি XML ফাইল দ্বারা সংজ্ঞায়িত হয়। একটি টেস্ট স্যুট ব্যবহার করে টেস্ট ক্লাস, মেথড এবং গ্রুপ চালানোর জন্য নির্দিষ্ট নিয়ম তৈরি করা যায়।

Test Suite তৈরি করার ধাপ

  1. TestNG-এর জন্য একটি XML ফাইল তৈরি করুন।
  2. <suite> ট্যাগ ব্যবহার করে স্যুট ডিফাইন করুন।
  3. <test> ট্যাগের মাধ্যমে টেস্ট ক্লাস বা গ্রুপ উল্লেখ করুন।

উদাহরণ

ধরুন, আমাদের দুটি টেস্ট ক্লাস রয়েছে: TestClass1 এবং TestClass2

TestClass1.java

import org.testng.annotations.Test;

public class TestClass1 {
    @Test
    public void testMethod1() {
        System.out.println("TestClass1: Test Method 1");
    }
}

TestClass2.java

import org.testng.annotations.Test;

public class TestClass2 {
    @Test
    public void testMethod2() {
        System.out.println("TestClass2: Test Method 2");
    }
}

TestNG XML ফাইল: testng.xml

<suite name="TestSuiteExample">
    <test name="TestClassSuite">
        <classes>
            <class name="TestClass1"/>
            <class name="TestClass2"/>
        </classes>
    </test>
</suite>

XML স্যুট রান করার পদ্ধতি

  1. Eclipse IDE-তে testng.xml ফাইলটি রান করুন।
  2. আউটপুট:
TestClass1: Test Method 1
TestClass2: Test Method 2

উপকারিতা:

  • একাধিক টেস্ট ক্লাস বা টেস্ট মেথড একত্রে পরিচালনা করা যায়।
  • নির্দিষ্ট ক্রমানুসারে টেস্ট চালানোর নিয়ম তৈরি করা সম্ভব।

Grouping

Grouping টেস্ট কেসগুলোকে লজিক্যাল বিভাগে ভাগ করার পদ্ধতি। এটি বড় টেস্ট স্যুট পরিচালনার জন্য গুরুত্বপূর্ণ।

Grouping-এর প্রয়োজনীয়তা

  • টেস্ট কেসগুলোকে লজিক্যাল বিভাগে ভাগ করে রান করা।
  • নির্দিষ্ট গ্রুপের টেস্ট চালানো বা বাদ দেওয়া।

Grouping ব্যবহার করার ধাপ

  1. @Test অ্যানোটেশনের groups অ্যাট্রিবিউট ব্যবহার করে গ্রুপ নির্ধারণ করুন।
  2. XML ফাইলের মাধ্যমে নির্দিষ্ট গ্রুপ রান বা স্কিপ করুন।

উদাহরণ

TestNG ক্লাস: TestGroupingExample.java

import org.testng.annotations.Test;

public class TestGroupingExample {

    @Test(groups = {"sanity"})
    public void testMethod1() {
        System.out.println("Sanity Test: Method 1");
    }

    @Test(groups = {"regression"})
    public void testMethod2() {
        System.out.println("Regression Test: Method 2");
    }

    @Test(groups = {"sanity", "regression"})
    public void testMethod3() {
        System.out.println("Sanity and Regression Test: Method 3");
    }
}

TestNG XML ফাইল: testng-groups.xml

<suite name="GroupingExample">
    <test name="SanityTests">
        <groups>
            <run>
                <include name="sanity"/>
            </run>
        </groups>
        <classes>
            <class name="TestGroupingExample"/>
        </classes>
    </test>
</suite>

XML স্যুট রান করার পদ্ধতি

  1. Eclipse IDE-তে testng-groups.xml ফাইলটি রান করুন।
  2. আউটপুট:
Sanity Test: Method 1
Sanity and Regression Test: Method 3

Multiple Groups ব্যবহার করা

একটি টেস্ট মেথড একাধিক গ্রুপের অন্তর্ভুক্ত হতে পারে। উপরের উদাহরণে, testMethod3 sanity এবং regression উভয় গ্রুপেই অন্তর্ভুক্ত।


Group Exclusion (গ্রুপ বাদ দেওয়া)

নির্দিষ্ট গ্রুপের টেস্ট মেথড চালানো থেকে বাদ দেওয়া যায়।

উদাহরণ

TestNG XML ফাইল: testng-exclude.xml

<suite name="ExclusionExample">
    <test name="ExcludeRegressionTests">
        <groups>
            <run>
                <exclude name="regression"/>
            </run>
        </groups>
        <classes>
            <class name="TestGroupingExample"/>
        </classes>
    </test>
</suite>

আউটপুট:

Sanity Test: Method 1

সুবিধা

  1. Test Suite:
    • বড় প্রজেক্টে টেস্ট কেস সংগঠিত করা।
    • নির্দিষ্ট ক্লাস বা পদ্ধতি চালানোর নিয়ন্ত্রণ।
  2. Grouping:
    • লজিক্যাল টেস্ট গ্রুপ তৈরি।
    • টেস্ট কেস ফিল্টার করে চালানো।

সারাংশ

Test Suite ব্যবহার করে একাধিক টেস্ট ক্লাস বা পদ্ধতি একত্রে চালানো যায়, যেখানে Grouping নির্দিষ্ট বিভাগে টেস্ট কেস সংগঠিত করে কার্যকরভাবে চালানোর সুযোগ দেয়। TestNG-তে স্যুট এবং গ্রুপিং একত্রে ব্যবহার করে বড় প্রজেক্টের টেস্টিং আরও সহজ এবং গঠনমূলক হয়।

Content added By
Promotion

Are you sure to start over?

Loading...